#include "main.h"

int main()
{

	/* Leo Archivo Config */
	int32_t leerCfg = 0;
	char *pPuerto =NULL;
	char tokenPuerto[] ="Puerto";
	leerCfg = leerConfiguracion(pathCfg,tokenPuerto,&pPuerto);
	int32_t memoriaLiberada;
	uint16_t puerto = atoi(pPuerto);
	memoriaLiberada = liberarMemoria(&pPuerto);


	/* Mapeo el Disco */
	char *archivoMapeado;
	int32_t mapearOk=0;
	mapearOk = abrirMapearArchivoDisco (pathVolumen,&archivoMapeado);


	/* Socket para PFS */
	int32_t crearConexionPFS=0;
	int32_t socketAcceptPFS=0;

	crearConexionPFS = AFINET_abrir_conexion(puerto);
	socketAcceptPFS = aceptar_conexion(crearConexionPFS);

	int32_t dataRecibida= 0;
	t_NIPC nipcRecibido;
	int32_t sectorABuscar;
	dataRecibida =  NIPC_recibir(socketAcceptPFS,&nipcRecibido,&sectorABuscar);



	/*Envio El BootSector */
	t_NIPC sectorLeido;
	int32_t sectorLeidoOk;
	char *datosSector;

	datosSector = (char *)calloc(TAMSECTOR,sizeof(char));
	sectorLeidoOk = leerSector(archivoMapeado,sectorABuscar,datosSector);
	sectorLeido = NIPC_crearpaquete(nipcRecibido.DescriptorID,LEERSECTOR,TAMSECTOR,datosSector,&sectorABuscar);
	sectorLeidoOk = NIPC_enviar(socketAcceptPFS,sectorLeido);
	free(datosSector);



	close(crearConexionPFS);
	NIPC_destruirpaquete(&nipcRecibido);
	NIPC_destruirpaquete(&sectorLeido);
	return 0;
}
